// // 导入fs、path模块
// const fs = require('fs')
// const path = require('path')

// // 创建CSS和JS提取的正则表达式
// const regCss = /<style>[\s\S]*<\/style>/
// const regJs = /<script>[\s\S]*<\/script>/

// // 读取HTML文件
// fs.readFile(path.join(__dirname, 'html/index.html'), 'utf8', function(err, dataStr) {
//     // 解析出HTML中的CSS和JS
//     const newCss = regCss.exec(dataStr)[0]
//     const newJs = regJs.exec(dataStr)[0]
//     // console.log(newCss)
//     // console.log('-------')
//     // console.log(newJs)

//     // 将HTML字符串中的CSS和JS铲除掉
//     dataStr = dataStr.replace(newCss, '').replace(newJs, '')
//     // console.log(dataStr)

//     // 保存文件
//     const base_path = path.join(__dirname, 'destination')
//     fs.writeFile(path.join(base_path, 'demo.html'), dataStr, function(err) {
//         if(err) {
//             return console.log('HTML写入失败: ' + err.message)
//         }
//     })
//     // fs.writeFile(path.join(base_path, 'demo.css'), newCss.replace('<style>', '').replace('</style>', ''), function(err) {
//     //     if(err) {
//     //         return console.log('CSS写入失败: ' + err.message)
//     //     }
//     // })
//     // fs.writeFile(path.join(base_path, 'demo.js'), newJs.replace('<script>', '').replace('</script>', ''), function(err) {
//     //     if(err) {
//     //         return console.log('JS写入失败: ' + err.message)
//     //     }
//     // })
//     fs.writeFile(path.join(base_path, 'demo.css'), newCss.replace(/<[^>]+>/, ''), function(err) {
//         if(err) {
//             return console.log('CSS写入失败: ' + err.message)
//         }
//     })
//     fs.writeFile(path.join(base_path, 'demo.js'), newJs.replace(/<\/?Wscript>/, ''), function(err) {
//         if(err) {
//             return console.log('JS写入失败: ' + err.message)
//         }
//     })
// })

// 导入fs和path模块
const fs = require('fs')
const { resolve } = require('path')
const path = require('path')

// 创建匹配Css和Js的正则表达式
const regStyle = /<style>[\s\S]*<\/style>/
const regJs = /<script>[\s\S]*<\/script>/

// 读取Html文件中的内容
fs.readFile(path.join(__dirname, '/html/index.html'), 'utf8', function(err, dataStr) {
    if(err) return console.log('Html读取失败: ' + err.message)

    console.log('Html文件读取成功')

    // 将Css和Js分别提取出来写入文件
    resolveCode(dataStr, 'css')
    resolveCode(dataStr, 'js')

    // 将Html中的Css和Js改为外联形式
    const newStr = dataStr.replace(regStyle, '<link ref="stylesheet" src="./index.css">').replace(regJs, '<script src=".index.js"></script>')

    // 写入新的Html字符串
    fs.writeFile(path.join(__dirname, '/destination/index.html'), newStr, function(err) {
        if(err) return console.log('Html文件写入失败: ' + err.message)

        console.log('Html文件写入成功!')
    })

})

function resolveCode(htmlStr, type) {
    // 根据type提取字符串
    const newStr = ''
    if (type.toLowerCase() == 'css') {
        newStr = regStyle.exec(htmlStr)[0]
        
        fs.writeFile(path.join(__dirname, '/destination/index.css'), newStr.replace('<style>', '').replace('</style>', ''), function(err) {
            if(err) return console.log('Css文件写入失败: ' + err.message)

            console.log('Css文件写入成功!')
        })
    } else {
        newStr = regJs.exec(htmlStr)[0]

        fs.writeFile(path.join(__dirname, '/destination/index.js'), newStr.replace('<script>', '').replace('</script>', ''), function(err) {
            if(err) return console.log('Js文件写入失败: ' + err.message)

            console.log('Js文件写入成功')
        })
    }
    // 去掉标签
    // 写入文件
}


















